import java.util.*;
/*
	*
	* Modifica��es feitas:
	*	inclus�o no comprovante:
	*		-c�digo do usu�rio;
	*		-tipo do usu�rio;
	*		-usu�rio funcion�rio;
	*		-DATA DE EMPR�STIMO.
	*
*/

public static class Main {
	static byte digitado[] = new byte[3];
	public static void main(String[] args) {
		acdUsuario acdU = new acdUsuario();
		IUsuario U;
		/****** Obter n�mero do usu�rio *******/
		U = acdU.getDados(n�mero_do_usu�rio);
		acdLivro acdL = new acdLivro();
		Livro L;
		/******* Obter n�mero do livro *******/
		L = acdL.getDados(n�mero_do_livro);
		//come�o da modifica��o
		System.out.println(U.getCodigo());
		System.out.println(U.getTipoUsuario());
		//fim da modifica��o
		System.out.println(U.getNome());
		System.out.println(L.getNome());
		//come�o da modifica��o
		System.out.println(U.DataEmprestimo());
		//fim da modifica��o
		System.out.println(U.DataProvavelDevolucao());
		System.out.println(U.MultaDia());
	}
}

class Usuario {
	String Nome;
	//come�o da modifica��o
	int codigo;
	Vector<Emprestimo> emprestimos = new Vector<Emprestimo>();
	//fim da modifica��o
	
	public void setNome(String N) {
		Nome = N;
	}
	
	public String getNome() {
		return Nome;
	}
	//come�o da modifica��o
	public void setCodigo(int cod) {
	codigo = cod;
	
	public void insereEmprestimo(Livro v) {
		emprestimos.add(new Emprestimo(v));
	}

	public int getCodigo() {
		return codigo;
	}
	//fim da modifica��o
}

class Aluno extends Usuario implements IUsuario {
	//come�o da modifica��o
	static final String TIPO_USUARIO = "Aluno";
	static final int DIAS_EMPRESIMO = 10;
	
	//fim da modifica��o
	
	public Date DataProvavelDevolucao() {
		return data_de_devolu��o_prov�vel;
	}
		
	public float MultaDia() {
		return valor_de_multa;
	}
	//come�o da modifica��o
	public String getTipoUsuario() {
		return TIPO_USUARIO;
	}
	
	public Date DataEmprestimo() {
		return data_de_empr�stimo;
	}
	//fim da modifica��o
	
	public int diasEmprestimo() {
		return DIAS_EMPRESIMO;
	}
	

}

class Professor extends Usuario implements IUsuario {
	//come�o da modifica��o
	static final String TIPO_USUARIO = "Professor";
	//fim da modifica��o
	
	public Date DataProvavelDevolucao() {
		return data_de_devolu��o_prov�vel;
	}
	
	public float MultaDia() {
		return valor_de_multa;
	}
	//come�o da modifica��o
	public String getTipoUsuario() {
		return TIPO_USUARIO;
	}
	
	public Date DataEmprestimo() {
		return data_de_empr�stimo;
	}
	//fim da modifica��o
}

class Funcionario extends Usuario implements IUsuario {
	//come�o da modifica��o
	static final String TIPO_USUARIO = "Funcion�rio";
	//fim da modifica��o
	
	public Date DataProvavelDevolucao() {
		return data_de_devolu��o_prov�vel;
	}
	
	public float MultaDia() {
		return valor_de_multa;
	}
	//come�o da modifica��o
	public String getTipoUsuario() {
		return TIPO_USUARIO;
	}
	
	public Date DataEmprestimo() {
		return data_de_empr�stimo;
	}
	//fim da modifica��o
}

class Livro {
	String Nome;
	public void setNome(String N) {
		Nome = N;
	}
	
	public String getNome() {
		return Nome;
	}
}

/* interface IUsuario {
	void setNome(String N);
	String getNome();
	//come�o da modifica��o
	void setCodigo(int cod);
	int getCodigo();
	String getTipoUsuario();
	Date DataEmprestimo();
	//fim da modifica��o
	Date DataProvavelDevolucao();
	float MultaDia();
} /*

class acdUsuario {
	IUsuario getDados(int cod) {
		/******* Obter objeto Usu�rio: aluno, professor ou outros e retornar *******/
	}
}

class acdLivro {
	Livro getDados(int cod) {
		Livro lv = new Livro();
		/******* Obter objeto livro *******/
		return lv;
	}
}